package com.xuecheng.api.content;


import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.dto.CourseTeacherDTO;
import com.xuecheng.api.content.model.qo.QueryCourseModel;
import com.xuecheng.api.content.model.vo.CourseBaseVO;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;

import java.util.List;
import java.util.Map;

@Api(tags = "课程相关API接口")
public interface CourseBaseApi {


    @ApiOperation("查询课程信息")
    PageVO<CourseBaseDTO> findCourseBases(PageRequestParams params, QueryCourseModel model);

    @ApiOperation("添加课程信息")
    CourseBaseDTO saveCourse(CourseBaseVO baseVO);

    @ApiOperation("根据课程ID查询课程基本信息")
    CourseBaseDTO findCourseBaseById(Long courseBaseId);

    @ApiOperation("修改课程详细信息")
    CourseBaseDTO modifyCourseBase(CourseBaseVO courseBaseVO);

    @ApiOperation("根据课程ID删除课程基本信息")
    @ApiImplicitParam(name = "courseBaseId", value = "传入的课程ID", required = true, paramType = "path", dataType = "Long")
    Boolean removeCourseBase(Long coursebaseId);

    @ApiOperation("根据课程ID提交课程")
    void modifyCourse(Long courseBaseId);

    @ApiOperation("运营平台 根据课程ID审核课程")
    void modifyMCourse(Map<String, String> map);

    @ApiOperation("运营平台查询全部课程信息")
    PageVO<CourseBaseDTO> queryCourseM(PageRequestParams params, QueryCourseModel model);


    @ApiOperation("根据课程ID查询教师信息")
    List<CourseTeacherDTO> queryCourseTeacher(Long courseBaseId);


}


